Currently, there are a wide variety of electronic devices in everyday use. For example, many individuals own cellular telephones and portable media players for on-the-go communication and entertainment. There are even electronic devices that are specifically designed to be accessory devices to other electronic devices, such as wireless Bluetooth™ headsets for cellular telephones. These accessory devices may enhance the functionality, convenience, or aesthetics of another electronic device. For example, a wireless Bluetooth™ headset may enhance the use of a cellular telephone by allowing users to have a hands-free, wireless conversation through their cellular telephone. Similarly, a docking device may be an accessory to a portable media player, where the docking device is used to update and provide power to the portable media player.
Two or more electronic devices, such as a device and its accessory device, can communicate using an established protocol. For example, the devices may communicate using a serial interface, such as a universal serial bus (“USB”) interface. For USB protocols and other serial protocols, the transfer of information occurs at an agreed upon data rate. If either device loses its ability to accurately transmit or receive information at that data rate, synchronization may be lost and communication may cease. Therefore, each of the devices typically includes a reliable clock source for use in maintaining data transfer at the agreed upon data rate. Electronic devices often use crystal oscillators as this reliable clock source.
Although crystal oscillators are reliable and accurate, they have several disadvantages. First, they are large components. For a portable device, where size is a crucial factor in its design, having such a large component in the device is highly undesirable. Moreover, crystal oscillators are typically expensive components and are also a common source of manufacturing defects in commercial electronic devices. Accordingly, it would be beneficial to be able to provide an approach for a microcontroller-based electronic device to accurately transmit and receive serial data without including an extra clock source.